Data centers are the sin qua non of the information age society. If the data center of a modern company is interrupted, that company will cease to function. The service a data center provides has become just as essential as any other utility. In keeping with their importance, data centers generally operate under service level agreements (SLAs) which mandate that the data center provide a certain level of end user experience at all times. It is the job of a data center administrator to assure that all of the SLAs are honored. This is not an easy task. Data center resources are costly. Large data centers operate at power densities that are more than 100 times greater than for a typical office building, and it is estimated that by 2012 the cost of power for a data center will exceed the cost of the original capital investment. In addition, the demand placed on a data center fluctuates dramatically with time so provisioning for peak demand is highly inefficient. Efficiently provisioning data center resources to end users is a critical exercise in resource allocation that requires continuous innovation to meet a growing demand.
In the face of the challenges described above, nearly all modern data centers are virtualized. The term “virtualization” is used with reference to technologies that are designed to provide a layer of abstraction between a computer hardware system and the software the hardware system is running. Virtualization allows a single operating system to run on a large single pool of computing resources comprised of a group of servers, and likewise allows multiple operating systems to run on a single machine. As such, a virtualized data center provides a much greater degree of flexibility in terms of how it responds to changing demands through the use of techniques such as clustering and partitioning.
The difference between a static and virtualized data center can be described with reference to FIG. 1. In FIG. 1, legacy data center 110 receives service requests from network 111 through inbound traffic link 112. Service requests are taken in by application delivery controller (ADC) 113. ADC 113 then forwards the request to one or more of the servers 114, 115, and 116. The servers are visible on the network as separate physical devices. In contrast, in virtualized data center 120 the servers are not physically visible to network 121 through inbound traffic link 122. Instead, the ADC 123 presents the servers as a load balanced pool 124 of many virtual machines (VMs) 125. Consider three applications where each requires two thirds the processing power of any of the servers 114, 115, or 116. In the traditional data center, all three servers would be required. In the virtualized data center, only two servers would be required for the same applications because three virtual machines could be run on two of the servers.
The decoupling of the hardware and software through a layer of abstraction brought about by virtualization allows for server consolidation. Therefore, virtualization results in a significant decrease in the number of servers that an enterprise must maintain and a commensurate increase in the resources an administrator can provision given a specific energy and cost constraint. Data center resource benefits are compounded by the fact that a more optimal utilization of resources decreases the amount of power servers consume while at the same time decreasing the amount of heat that must be removed by cooling systems with their own burdensome power requirements. Data center virtualization generally provides more storage, more processing resources, and higher overall utilization of those resources at a set cost.
The benefits of virtualization are somewhat mitigated by the increased complexity that the dynamism of virtualization creates. Virtualization reduces the physical requirements of the data center, but it also compounds the level of management complexity of the servers. It is much more difficult for a data center administrator to track exactly what hardware is being used to satisfy the applications the center is running. Although a careful administrator can handle the added dynamism of the virtualized data center, the administrator's time is a resource that is just as precious as the power the hardware consumes. Virtualization may decrease the number of servers that a data center must run, but it also results in the data center having an increased level of operational overhead.
Current solutions for monitoring, managing, and optimizing the allocation of virtualized resources include tools for gathering statistics and applying dynamic policies to better allocate physical resources among applications. However, the current solutions are front server or front device centric. They provide insights from the front end engine such as an ADC, but they do not provide visibility and insight into the lower proprietary tiers of the virtual server environment. They also lack the capability to obtain application by application statistics and information regarding grouping of real and virtual servers.